package com.shujia.common_.hemowork;

import org.junit.Test;

import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Exer1 {

    /*
    7.中国有句俗语叫“三天打鱼两天晒网”。
    如果从1990 年 1 月1日起开始执行“三天打鱼两天晒网”。
    如何判断在以后的某一天中是“打鱼”还是“晒网”？

    6.求两个日期之间相隔的天数
     */
    @Test
    public void test4() throws Exception {
        String start = "1990-1-1";
        String end = "1990-1-6";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date startTime = sdf.parse(start);
        Date endTime = sdf.parse(end);
        long time = endTime.getTime() - startTime.getTime();
        long days = time / 1000 / 60 / 60 / 24;
        System.out.println(days);

        days++;

        if (days % 5 == 0 || days % 5 == 4) {
            System.out.println("晒网");
        } else {
            System.out.println("打鱼");
        }

    }

    /*
    5．根据传入得路径，获取文件名和类型名。例如：D:\myfile\hello.java取出hello.java 和 .java
     */
    @Test
    public void test3() {
        String str = "D:\\myfile\\hello.java";
        int i = str.lastIndexOf("\\");
        System.out.println(i);
        String substr = str.substring(i + 1);
        System.out.println(substr);
        String result = substr.substring(substr.lastIndexOf("."));
        System.out.println(result);

    }

    /*
    3.创建BigDecimalDemo类，
    在类中分别定义add(),sub(),mul()和div()方法实现
    加、减、乘、除运算，并输出运算结果。
     */
    @Test
    public void bigDecimalDemo() {
        BigDecimal b1 = new BigDecimal("1.1");
        BigDecimal b2 = BigDecimal.valueOf(2.2);

        System.out.println(add(b1, b2));
        System.out.println(sub(b1, b2));
        System.out.println(mul(b1, b2));
        System.out.println(div(b1, b2));
    }

    public BigDecimal add(BigDecimal b1, BigDecimal b2) {
        return b1.add(b2);
    }

    public BigDecimal sub(BigDecimal b1, BigDecimal b2) {
        return b1.subtract(b2);
    }

    public BigDecimal mul(BigDecimal b1, BigDecimal b2) {
        return b1.multiply(b2);
    }

    public BigDecimal div(BigDecimal b1, BigDecimal b2) {
        return b1.divide(b2);
    }

    /*
    2.一个应用程序，接受用户输入的一行字符串，统计字符个数，然后反序输出。
     */
    @Test
    public void test2() {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();

        System.out.println("个数:" + str.length());

        System.out.println(new StringBuilder(str).reverse().toString());

    }


    /*
    1.请编写一个 Application 实现如下功能：接受命令行中给出的一个字符串，
    先将该串原样输出，然后判断该串的第一个字母是否为大写，
    若是大写则统计该串中大写字母的个数，并将所有大写字母输出；
    否则输出信息串”第一个字母不是大写字母!”。
     */
    @Test
    public void test1() {

        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        System.out.println(str);


        char c = str.charAt(0);

        if ('A' <= c && 'Z' >= c) {
            int count = 0;
            for (int i = 0; i < str.length(); i++) {
                if ('A' <= str.charAt(i) && 'Z' >= str.charAt(i)) {
                    count++;
                }
            }
            System.out.println("一共有" + count + "个大写字母");
        } else {
            System.out.println("第一个字母不是大写字母!");
        }


    }

}
